package com.swanclouds.redfish.managers.domain.Oem.BMC;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.swanclouds.model.common.redfish.Oem;

/**
 * @author 李文强
 * description
 */
@JsonRootName("Oem")
public class BMCEthernetInterfacesOem implements Oem {

    @JsonProperty("BMC")
    private BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces bmc;

    @JsonRootName("BMC")
    public static class BMCUpdateEthernetInterfaces {

        @JsonProperty("Ipv4Enabled")
        private Boolean ipv4Enabled;

        @JsonProperty("Ipv6Enabled")
        private Boolean ipv6Enabled;

        @JsonProperty("ChannelIndex")
        private Integer channelIndex;

        @JsonProperty("InterfaceName")
        private String interfaceName;

        public BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces ipv4Enabled(Boolean ipv4Enabled) {
            this.ipv4Enabled = ipv4Enabled;
            return this;
        }

        public BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces ipv6Enabled(Boolean ipv6Enabled) {
            this.ipv6Enabled = ipv6Enabled;
            return this;
        }

        public BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces interfaceName(String interfaceName) {
            this.interfaceName = interfaceName;
            return this;
        }

        public BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces channelIndex(Integer channelIndex) {
            this.channelIndex = channelIndex;
            return this;
        }

        private BMCUpdateEthernetInterfaces() {}

        public static BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces update() {
            return new BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces();
        }
    }

       public BMCEthernetInterfacesOem name(BMCEthernetInterfacesOem.BMCUpdateEthernetInterfaces name) {
           this.bmc = name;
           return this;
       }

    public static BMCEthernetInterfacesOem update() {
        return new BMCEthernetInterfacesOem();
    }
}
